package pkg

import (
	"bytes"
	"fmt"
	"github.com/skip2/go-qrcode"
	"image"
	"smart-health-platforms/config"
	"strconv"
)

// 生成包含用户推广信息的二维码
func GenerateQRCode(userId int64) (image.Image, error) {
	// 生成二维码,包含用户ID用于识别一级分销
	url := config.QR_CODE_TEMPLATE + strconv.FormatInt(userId, 10)
	//设置二维码尺寸
	qrcodeSize := 200
	qrCode, err := qrcode.New(url, qrcode.Medium)
	if err != nil {
		return nil, fmt.Errorf("创建二维码失败: %w", err)
	}
	// 禁用边框
	//qrCode.DisableBorder = true

	// 生成PNG图片
	qrBytes, _ := qrCode.PNG(qrcodeSize)

	// 解析二维码图片
	img, _, err := image.Decode(bytes.NewReader(qrBytes))
	if err != nil {
		return nil, fmt.Errorf("解码二维码失败: %w", err)
	}
	return img, err
}
